ASP.NET – Page. Header

 

Podemos transformar qualquer elemento HTML em um Server control utilizando o atributo runat=”server” ,  uma pĂĄgina pode conter ilimitados controles, porĂ©m ela sĂł pode ter um HtmlHead, onde temos acesso  Server-side.

<head runat="server">

    <title>Untitled Page</title>

</head>

Como nos Server controls, vocĂȘ pode programaticamente alterar o conteĂșdo que Ă© renderizado na tag <head>,   Ăștil porque podemos mudar alguns detalhes via cĂłdigo quando precisarmos, como o title, metadata tags (Ăștil para fornecer palavras chaves) e referencias a stylesheet. Para fazer estas modificaçÔes utilizamos os membros da classe HtmlHead, que sĂŁo os seguintes.

Title:  Ă‰ o tĂ­tulo de uma Page HTML que serĂĄ exibido no barra de tĂ­tulos do browser. VocĂȘ pode mudar em tempo de execução.

StyleSheet:  ProvĂȘ um IStyleSheet  objeto, que representa um estilo inline no cabeçalho.  VocĂȘ pode utilizar o objeto IStyleSheet  para criar um novo estilo dinamicamente, utilizando os mĂ©todos CreateStyleRule() e RegisterStyle().

Exemplo 

protected void Page_Load(object sender, EventArgs e)

{

        // Cria uma Style object

        Style bodyStyle = new Style();

 

        bodyStyle.ForeColor = System.Drawing.Color.Blue;

        bodyStyle.BackColor = System.Drawing.Color.LightGray;

 

   // Adiciona o style no header

Page.Header.StyleSheet.CreateStyleRule(bodyStyle, null, "body");

 

}

<title>Untitled Page</title>
<style type="text/css">
     body { color:Blue;background-color:LightGrey; }
</style>
</head>

 

Controls:  VocĂȘ pode adicionar ou remover tags metadata via cĂłdigo utilizando as classes HtmlMeta. Abaixo um exemplo de como alterar o tĂ­tulo e as tags metadata dinamicamente.

 protected void Page_Load(object sender, EventArgs e)

 { 

        Page.Header.Title = "TĂ­tulo dinĂąmico";

 

        //Define uma tag metadata

        HtmlMeta metaDescription = new HtmlMeta();

        metaDescription.Name = "description";

        metaDescription.Content = "ASPNETi, tudo sobre .NET";

 

        //Adicionando

        Page.Header.Controls.Add(metaDescription);

 

        //Segundo tag metadata

 

        HtmlMeta metaKeywords = new HtmlMeta();

        metaKeywords.Name = "keywordS";

        metaKeywords.Content = ".NET, C#, ASP.NET";

        Page.Header.Controls.Add(metaKeywords);

 

    }

 

RENDERIZADO

 

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<html xmlns="http://www.w3.org/1999/xhtml">

<head>
<title>

                TĂ­tulo dinĂąmico

</title>

<meta name="description" content="ASPNETi, tudo sobre .NET" />
<meta name="keywordS" content=".NET, C#, ASP.NET" /></head>

<body>

    <form name="form1" method="post" action="Default.aspx" id="form1">

<div>

<input type="hidden" name="__VIEWSTATE" id="__VIEWSTATE" value="/wEPDwUJNzgzNDMwNTMzZGQQe26Fc2jEoK6Akrn/SO4FZNd7jg==" />

</div>    <div>  

    </div>

    </form>

</body>

</html>

 

Um item interessante que vejo em alguns sites Ă© mudar o Title com dados que vem do banco,  com os exemplos acima, o tĂ­tulo das suas pĂĄginas podem ficar de forma dinĂąmica dependendo da sua necessidade.

Fabio Galante Mans
fabio.galante@mans.com.br
www.aspneti.com